Automated Presentation of directory src/exampleCode/i18n/

HUB | Up | Download | Pheedbak | Tree | Topic | A-Z | Search | Hot | New


Please be aware: what appears below are the v4.2 DT bits in auto-generated html form.
As we have the time, we will update these to reflect the current "state of the world".


README file from "i18n" directory

                ~4Dgifts/toolbox/src/exampleCode/i18n README

 
           This directory contains example source code dealing with 
           internationalization and localization as well as draft 
	   copies of the IRIX Internationalization chapter (Primer.ps)
	   for what will eventually be the Internationalization chapter
	   of the "IRIX Systems Programming Guide" as well as a Nutshell
	   (Nutshell.ps) guide as an attempt to supply a high-level 
	   description of the issues involved in internationalizing 
	   software.
	   
	   To successfully run the programs in this directory, you 
	   need to be running an O.S level of 5.* or higher, and 
	   need to have Motif 1.2 running and X11 R5. 

           Some examples will also require installed images of 
           intl.sw.  See below for more details.


           See the Frequently Asked Questions i18n file located at
           ~4Dgifts/toolbox/FAQs/netfaqs/i18n-faq.



xpg3_wchar : 

   this is a sample code which shows two things

   1) use of wide characters for string manipulation
   2) XPG/3 way of doing message catalogs (the other 
      interface of cataloging is MNLS).

   the sample code is supplied with Japanese and German 
   catalogs under the directory jp and de respectively.

   to run the Japanese version : 

   setenv XMODIFIERS @im=_XWNMO
   run xwnmo
   run iwsh or exterm 

   setenv NLSPATH jp
   setenv LANG ja_JP.EUC
   xpg3_wchar  japanese_input_string

   and for German

   setenv NLSPATH de
   setenv LANG de
   xpg3_wchar  german_input_string

   do man catopen for full details on the location of catalogs.
   do man gencat  for help on generating message catalogs.

   if the NLSPATH environment variable is not set, it
   will run in the default english mode.

   the program takes the input string and outputs two strings
   which are made of even and odd alphabets from the original
   string (not useful in real life, but shows how to manipulate
   wide character strings).

mnls_wchar : 

   this is similar to xpg3_wchar except that it uses mnls
   way of cataloging.

   the sample code is supplied with Japanese and German 
   catalogs under the directory jp and de respectively.

   you will have to move (or copy) the file mnls_wchar.cat from these
   respective directories to 

   /usr/lib/locale/de/LC_MESSAGES for German
   and to /usr/lib/locale/ja_JP.EUC/LC_MESSAGES for Japanese

   to run the Japanese version : 

   setenv LANG ja_JP.EUC
   mnls_wchar  japanese_input_string

   and for German

   setenv LANG de
   mnls_wchar  german_input_string


=======================================================================

Message Catalogs for Internationalization :
-------------------------------------------

Apart from the text which appears on the user interface 
widgets, an internationalized application must display 
other texts like prompts, error messages in the native 
language. Message cataloging facility is commonly used for this 
type of intertionalization of strings.

Message catalogs are compiled databases of strings. The application
extracts all the strings from a locale dependent message catalog.
Although these strings are commonly used for communication
in the native language, they can be used for any purpose.

On Irix, there are two different interfaces to message catalogs:
MNLS and XPG/3. MNLS is AT&T's Multi National Language Support and
XPG/3 is the X/Open Portability Guide, Issue 3, by X/Open, Ltd.
Developers working on base system utilities will probably be
using MNLS, whereas developers working on independent projects will
be using XPG/3. In order to maximize portability, developers are
encouraged to use XPG/3 if given a choice.
Catalog generation is exclusively the task of localizers. But the
developer must know the contents of the catalog in order to specify
the number of a message to be used in the application. So in order
to inform the localizer which strings to translate and how they
should create a catalog, the application developer should provide
a master catalog for the developer's locale.

MNLS message catalogs
---------------------

    MNLS message catalogs are merely list of strings in a file, separated
by new-lines. Strings are referenced by line number in the original 
source file. Adding strings to an existing catalog should only be done
at the end of the file. Otherwise, applications already using this catalog
will end up accessing different strings. The three functions
pfmt, gettxt, and printf are sufficient for most applications in
this interface. fmtmsg() a comprehensive formatter is also available.

MNLS catalogs do not need to be specifically opened. The catalog can be
set explicitly once, or it can be specified everytime a string is
needed.

When a file of message strings is ready to be compiled, run mkmsgs()
and save the file in /usr/lib/locale/<locale>/LC_MESSAGES
(for example <locale> for german could be de).

following is an example German mnls message strings which needs to
be compiled using mkmsgs

Benutzung: %s Zeichenkette\n
Kein freier Speicher mehr\n
Fehler beim Erzeugen eines 'wide characters'\n
Hier ist die Ausgabe :

mnls_wchar is an example source which uses MNLS interface of catalog.

XPG/3 message catalogs 
----------------------

    XPG/3 message catalogs contains sets of numbered messages. The 
three functions catopen, catgets, and catclose, provide a simple
mechanism for retrieving numbered strings from a plain text file.
This interface requires that a catalog be opened before it is read.

The XPG/3 catalogs are located using the environment variable NLSPATH.
The man page on catopen() gives full details on the path.

After creating the file with message strings, you need to compile them
into a binary form using gencat() and save the file in the location
where catopen() can find it (NLSPATH mentioned above).

following is an example German xpg3 message strings which needs to
be compiled using gencat

$set 1
1 Benutzung: %s Zeichenkette\n
2 Kein freier Speicher mehr\n
3 Fehler beim Erzeugen eines 'wide characters'\n
4 Hier ist die Ausgabe :

xpg3_wchar is an example source which uses XPG/3 interface of catalog.

Wide Characters
---------------

The example source also demonstrates another very useful concept
in internationalized applications: the wide character.
A wide character is a data object of type wchar_t, which holds the
system's largest numerical code for a character. On Irix 5.* and
beyond, the sizeof(wchar_t) is 4.

Since the strings made of wide characters have all the characters of
the same size, the string can be treated as an array, and the application
can simply index into the array in order to manipulate it.

Wide characters are not as space efficient as multibyte strings and
applications which do not need to perform string editing may never
use wchars.

-----------------
Yusuf Attarwala
SGI - Applications.
x 3-3342

Files of interest from "src/exampleCode/i18n" directory

Source

Documentation

Reference

Subdirectories


Select any combo of files you'd like to send yourself a compressed tar image of. Executables/scripts are indicated with a trailing `*' character. (Depending upon the browser, it may be necessary to hold down the Ctrl key to select/deselect disjoint items.) a compressed tar image of the above-selected items.
OR, ...
a compressed tar image of the entire i18n directory.

Copyright © 1995, Silicon Graphics, Inc.